In a data communication network, devices known as nodes are interconnected with each other over data links, such as wires, optical fibers, or radio links. A node may serve as the origin of a communication, the destination of a communication, or as a router of a communication between two other nodes. In routing a communication, a first node in a chain of three nodes may receive a communication from a second node and forward the communication to a third node. A ring is a common data communication network topology. In a ring network, each node is connected to exactly two other nodes. To avoid the potentially adverse effects of a loop in a ring network, a loop-avoidance feature such as Ethernet Ring Protection Switching (ERPS) may be employed. Such a loop-avoidance feature prevents traffic from flowing on one link in the ring at any given time. A ring network having a loop-avoidance feature is thus similar to a linear network, in which three or more nodes form a chain. Various other network topologies, such as tree networks, may similarly include chains of three or more nodes.
A node is essentially a type of specialized computing device. Accordingly, a node includes a processing system that operates under the control of software or firmware. From time to time, personnel charged with operating or maintaining the network may deem it necessary to modify or upgrade the firmware stored in the nodes. To initiate a firmware upgrade, such personnel may cause one of the nodes, which is configured with a management system, to download the firmware to the other nodes. Although from a logical perspective the firmware downloads to all such other nodes simultaneously, from a physical perspective the firmware (in the form of frames, data packets, etc.) propagates from node to node down the chain (i.e., in a “downstream” direction). Each node in the chain receives and stores the firmware in memory, then reboots itself. The amount of time required for a node to receive and store the firmware may depend upon a number of factors that may differ among the nodes. Thus, one node may take longer to receive and store the firmware than another node. For example, a node farther downstream may take longer to completely receive the firmware than a node farther upstream. Also, a node having more elements (e.g., circuit cards) that need to be configured with corresponding copies of the firmware may take longer to completely store the firmware than a node having fewer such elements.
While a node is in the process of rebooting, it is off-line with respect to the network, and nodes downstream from the rebooting node may be interrupted from completing receiving and storing the firmware. Also, not only the network traffic related to the firmware upgrade but also other network traffic may be interrupted while a node is in the process of rebooting. Once the node finishes rebooting, i.e., is back on-line in the network, nodes that were interrupted may or may not properly complete receiving and storing the firmware, depending on factors that are often difficult to predict.